﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;
using System.Xml;
using System.Xml.Serialization;
using System.Windows.Forms;

namespace Photon4
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            FormBrowser browser = new FormBrowser();
            if (browser != null)
            {
                Application.Idle += new EventHandler(browser.OnIdle);
                Application.Run(browser);
            }
        }
        /* выполняет сохранение любого объекта в xml файл
         */
        public static bool SaveXml(object obj, string filename)
        {
            bool result = false;
            using (StreamWriter writer = new StreamWriter(filename))
            {
                try
                {
                    XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
                    ns.Add("", "");
                    XmlSerializer serializer = new XmlSerializer(obj.GetType());
                    serializer.Serialize(writer, obj, ns);
                    result = true;
                }
                catch (Exception e)
                {
                    // Логирование
                }
                finally
                {
                    writer.Close();
                }
            }
            return result;    
        }
        /* выполняет инициализацию объекта из xml файла
         */
        public static object LoadXml(Type type, string filename)
        {
            object result = null;
            using (StreamReader reader = new StreamReader(filename))
            {
                try
                {
                    XmlSerializer serializer = new XmlSerializer(type);
                    result = serializer.Deserialize(reader);
                }
                catch (Exception e)
                {
                    // Логирование
                }
                finally
                {
                    reader.Close();
                }
            }
            return result;
        }
    }
}
